/*
有 n 个小朋友坐成一圈，每人有 a[i] 个糖果。
每人只能给左右两人传递糖果。
每人每次传递一个糖果代价为 1。
求使所有人获得均等糖果的最小代价。

输入格式
第一行输入一个正整数 n，表示小朋友的个数。
接下来 n 行，每行一个整数 a[i]，表示第 i 个小朋友初始得到的糖果的颗数。
输出格式
输出一个整数，表示最小代价。

数据范围
1≤n≤1000000,
0≤a[i]≤2×109,
数据保证一定有解。

输入样例：
4
1
2
5
4
输出样例：
4
*/
#include <iostream>
#include <algorithm>
using namespace std;
const int N = 1e6 + 10;
int n;
int a[N];

int main()
{
    cin >> n;
    long long sum = 0;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
        sum += a[i];
    }
    sum /= n;
    for (int i = n; i > 1; i--)
    {
        a[i] = sum - a[i] + a[i + 1];
    }
    a[1] = 0;
    sort(a + 1, a + n + 1);
    long long res = 0;
    for (int i = 1; i <= n; i++)
        res += abs(a[i] - a[(n + 1) / 2]);
    cout << res << endl;
    return 0;
}